
// pages/performance/editPerformance.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    courseId: '',       // 课程ID
    studentInfo: {      // 学生基础信息
      _id: '',         // 学生ID
      name: '',         // 学生姓名
      studentNumber: '', // 学号
      
    },
    editScores: {       // 编辑中的分数
      attendance: 0,    // 考勤分
      answer: 0,       // 回答分
      question: 0      // 提问分
    },
    weekNumber: 1,     // 当前周数
    isLoading: true     // 加载状态
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('接收到的参数:', options);
    const db = wx.cloud.database();
    this.setData({
      courseId: options.courseId,
      weekNumber: Number(options.weekNumber),
      studentInfo: {
        _id: options.studentId,
        name: '',         // 学生姓名
        studentNumber: '', // 学号
      },
      isLoading: true
    });
    
    // 并行查询表现记录和学生信息
    Promise.all([
      db.collection('performance')
        .where({
          studentId: options.studentId,
          courseId: options.courseId,
          weekNumber: Number(options.weekNumber)
        })
        .get(),
      db.collection('students').doc(options.studentId).get()
    ]).then(([perfRes, studentRes]) => {
      const performanceData = perfRes.data[0] || {};
      console.log('学生数据:找姓名的name', studentRes.data);
      this.setData({
        studentInfo: {
          _id: options.studentId,
          name: studentRes.data.studentName,
          studentNumber: studentRes.data.studentNumber
        },
        editScores: {
          attendance: performanceData.attendance || 0,
          answer: performanceData.answer || 0,
          question: performanceData.question || 0
        },
        isLoading: false
      });
      console.log('this:找姓名的name', this.data.studentInfo.name);
      console.log('this:ZHAO  number', this.data.studentInfo.studentNumber);
      if (!perfRes.data.length) {
        wx.showToast({ title: '无历史记录', icon: 'none' });
      }
    }).catch(err => {
      console.error('数据加载失败:', err);
      wx.showToast({ title: '加载失败', icon: 'none' });
      this.setData({ isLoading: false });
    });
  },

    // 考勤分输入监听（修正版）
    attendanceBind(e) {
      this.setData({
        'editScores.attendance': Number(e.detail.value) || 0
      })
    },
  
    // 回答分输入监听
    answerBind(e) {
      this.setData({
        'editScores.answer': Number(e.detail.value) || 0
      })
    },
  
    // 提问分输入监听
    questionBind(e) {
      this.setData({
        'editScores.question': Number(e.detail.value) || 0
      })
    },
   



   // 保存编辑
   async handleSave() {
    try {
      wx.showLoading({ title: '保存中...' });
      const app  = getApp();
      const db = app.getDB()
      const _ = db.command;
      
      // 计算总分
      const totalScore = this.data.editScores.attendance + 
                       this.data.editScores.answer + 
                       this.data.editScores.question;

      // 更新条件（增加周次参数）
      const condition = {
        studentId: this.data.studentInfo._id,
        courseId: this.data.courseId,
        weekNumber: Number(this.data.weekNumber) // 确保数值类型
      };

      // 构造基础数据
      const baseData = {
        attendance: Number(this.data.editScores.attendance),
        answer: Number(this.data.editScores.answer),
        question: Number(this.data.editScores.question),
        total: totalScore,
        updateTime: db.serverDate()
      };

      // 尝试更新现有记录
      const updateRes = await db.collection('performance')
        .where(condition)
        .update({ data: baseData });

      console.log('更新结果:', updateRes);

      // 如果没有匹配记录则创建新记录
      if (updateRes.stats.updated === 0) {
        const addRes = await db.collection('performance').add({
          data: {
            ...condition,
            ...baseData,
            createTime: db.serverDate()
          }
        });
        console.log('新增记录:', addRes);
          
      }
      // 添加成功提示
      wx.showToast({ 
        title: '保存成功', 
        icon: 'success',
        duration: 1500
      });
    } catch (err) {
      console.error('保存失败:', err);
      wx.showToast({ title: `操作失败：${err.errMsg}`, icon: 'none' });
    } finally {
      wx.hideLoading();
    }
  },


  // 删除记录
  async handleDelete() {
    try {
      wx.showLoading({ title: '删除中...' });
      const db = wx.cloud.database();
      
      await db.collection('performance').where({
        studentId: this.data.studentInfo._id,
        courseId: this.data.studentInfo.courseId
      }).remove();
      
      wx.hideLoading();
      wx.showToast({ title: '删除成功', icon: 'success' });
      wx.navigateBack();
    } catch (err) {
      console.error('删除失败:', err);
      wx.showToast({ title: '删除失败', icon: 'none' });
    }
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})